#ifndef	EXCEPTION_HPP_
# define	EXCEPTION_HPP_

# include	<string>
# include	<exception>

namespace Tools
{
  class Exception : public std::exception
  {
  public:
    Exception(std::string const&);
    virtual ~Exception() throw() {}

  public:
    virtual char const	*what() const throw();
    std::string const&	where() const throw();

    template <typename Type>
    void		setWhere(Type const&) throw();

  private:
    std::string		_msg;
    std::string		_where;
  };
}

#endif	/*	EXCEPTION_HPP_ */
